#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//1 0 0 0 0 0 0 0
//128 64 32 16 8 4 2 1
//128 64 0 0 8
//11001000

//int main()
//{
//	unsigned char a = 200;
//	//00000000 00000000 00000000 11001000  整型
//	//11001000 char
//	unsigned char b = 100;
//	//128 64 32 16 8 4 2 1
//	//01100100 char
//	unsigned char c = 0;
//	//00000000 char
//	c = a + b;
//	//整型提升
//	//00000000 00000000 00000000 11001000
//	//00000000 00000000 00000000 01100100
//	//00000000 00000000 00000001 00101100   a+b    256+32+8+4=288+12=300
//	//00101100    32+8+4=44   char c
//	printf("%d %d",a+b,c);
//	return 0;
//}

//int main()
//{
//	unsigned int a = 0x00001234;      //低地址34 12 00 00
//	unsigned char b = *(unsigned char*)&a;
//	return 0;
//}

//int main()
//{
//	char a[1000] = { 0 };
//	int i = 0;
//	for (i = 0; i < 1000; i++)
//	{
//		a[i] = -1 - i;
//	}
//	//1 00000000    256  1 2 255
//	printf("%d",strlen(a));//以\0为结束标志的
//	return 0;
//}


//在屏幕上打印杨辉三角
//第一行：是1     a[0][0] = 1
//第二行：是1 1   a[1][0] = 1 a[1][1] = 1
//第三行：首位是  a[2][0] = 1 a[2][1] = a[1][0] + a[1][1] = 2 a[2][2] = 1
//第四行          a[3][0] = 1 a[3][1] = a[2][0] + a[2][1] = 3 a[3][2] = a[2][1] + a[2][2] = 3 a[3][3] = 1
//
//假设有n行
//int main()
//{
//	int arr[100][100];
//	int n = 0;
//	scanf("%d", &n);
//
//	if (1 == n)
//	{
//		arr[0][0] = 1;
//		printf("%d\n", arr[0][0]);
//	}
//	else if (2 == n)
//	{
//		arr[0][0] = 1;
//		printf("%d\n", arr[0][0]);
//		arr[1][0] = 1;
//		arr[1][1] = 1;
//		for (int k = 0; k <= 1; k++)
//		{
//			printf("%d ", arr[1][k]);
//		}
//		printf("\n");
//	}
//	else
//	{
//		arr[0][0] = 1;
//		printf("%d\n", arr[0][0]);
//		arr[1][0] = 1;
//		arr[1][1] = 1;
//		for (int k = 0; k <= 1; k++)
//		{
//			printf("%d ", arr[1][k]);
//		}
//		printf("\n");
//		//第一行：是1     a[0][0] = 1
//		//第二行：是1 1   a[1][0] = 1 a[1][1] = 1
//		//第三行：首位是  a[2][0] = 1 a[2][1] = a[1][0] + a[1][1] = 2 a[2][2] = 1
//		//第四行          a[3][0] = 1 a[3][1] = a[2][0] + a[2][1] = 3 a[3][2] = a[2][1] + a[2][2] = 3 a[3][3] = 1
//		//
//		//假设有n行
//		for (int i = 2; i < n; i++)
//		{
//			arr[i][0] = 1;
//			for (int j=1; j <i ; j++)
//			{
//				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
//			}
//			arr[i][i] = 1;
//		}
//		//打印
//		for (int i = 2; i < n; i++)
//		{
//			for (int j = 0; j <=i ; j++)
//			{
//				printf("%d ",arr[i][j]);
//			}
//			printf("\n");
//		}
//	}
//	return 0;
//}
//
//
////猜名次
////5位运动员参加了10米台跳水比赛，有人让他们预测比赛结果：
//
////A选手说：B第二，A第三；
////B选手说：B第二，E第四；
////C选手说：C第一，D第二；
////D选手说：C最后，D第三；
////E选手说：E第四，A第一；
////比赛结束后，每位选手都说对了一半，请编程确定比赛的名次。
//// 
////每个选手都说对一半，将其进行组合，有2*2*2*2*2种组合
////正确的组合中，第一，第二，第三，第四，最后，只能出现一次
////               1      2    3     4    5
////arr[0] arr[1] arr[2] arr[3] arr[4]
////arr[1]=B arr[2]=A
////arr[1]=B arr[3]=E
////arr[0]=C arr[1]=D
////arr[4]=C arr[2]=D
////arr[3]=E arr[0]=A
//
//
//
//
//5
//00000000 00000000 00000000 00000101 原码
//00000000 00000000 00000000 00000101 反码
//00000000 00000000 00000000 00000101 补码
//
//
//-5
//10000000 00000000 00000000 00000101 原码
//11111111 11111111 11111111 11111010 反码
//11111111 11111111 11111111 11111011 补码
//
//10000000 00000000 00000000 00000100 
//10000000 00000000 00000000 00000101 -5的原码


int main()
{
	float a = 5.5;
	float a = 3.14;
	return 0;
}

//20
//00000000 00000000 00000000 00010100 补码 
//0000 0000 0000 0000 0000 0000 0001 0100
// 0    0    0     0    0    0    1   4
//	00       00        00         14

//比如，（ - 1） ^ 0 * 1.011 * 2 ^ 2，e = 2, 127 + 2 = 129, 
//那么在内存中应为10000001，s = 0，m在内存中应为011，
//补齐23位为00000000000000000000011
//0 10000001 01100000000000000000000
//0100 0000 1011 0000 0000 0000 0000 0000
// 4     0   b    0     0    0   0    0
//0x	40      b0          00        00


0100 0000 1011 0000 0000 0000 0000 0000
0 10000001 01100000000000000000000
s=0 e=129-127=2 m=1.011
(-1)^0*1.011*2^2=101.1,转换为10进制为5.5